Data storage systems are used to store large amounts of information received from one or more sources. A data storage system often comprises a storage controller in communication with one or more clients, often referred to as “hosts,” and also in communication with a plurality of data storage devices. A host computing device may send a storage controller a write command to write certain information to a data storage medium, and/or a read command to read information from a data storage medium, and/or a copy command to copy information from one data storage medium to another data storage medium. Host computers may also provide commands to a storage controller to establish or revise physical and/or logical configurations. In certain embodiments, a read command, or a write command, or a copy command, or a configuration command comprises a plurality of objects packaged in one command. If a host computer sends a command that is unsupported, i.e. not enabled, or a command parameter that is unsupported, certain APIs in the storage controller may simply drop or disregard that command.
Certain commands comprise method objects. As a result, a default serialization protocol is unable to determine if the actual method is supported on the receiving storage controller. An error will occur when a method call is made on the storage controller.
It is inefficient to query the storage controller each time a storage controller command is generated to determine if that command is supported. Such a procedure consumes inordinate amounts of communication bandwidth that is better utilized for actual I/O operations.